import axios from 'axios'
import store from '../store'

const instance = axios.create({
  baseURL: '/api',	// 通过使用配置的proxy来解决跨域
  timeout: 5000
});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
  let token = localStorage.getItem("x-auth-token");
  if (token) {
    config.headers = {
      "x-auth-token": token
    }
  }
  return config;
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
  // 对响应数据做点什么
  return response.data;
}, function (error) {
  if (error.response.data.errCode === 1002) {
    // token过期，先告诉用户登录失效，并重新登录
    store.dispatch({
      typr: 'showAlert', value: {
        alertType: 'error',
        alertContent: '登录失效，即将跳转登录页'
      }
    })
    setTimeout(() => {
      // 关闭alert弹框
      store.dispatch({ type: 'hideAlert' });
      // 跳转登录页,开发阶段都是在locahast：8080根路径下开发，所以可以用window.location.href='/login'，
      // window.location.href='/login'
      // 项目上线，由于路由模式改成啦HashRouter。所以应该修改的是hash值
      window.location.hash = '#/login'
    }, 2000)

  }
  // 对响应错误做点什么
  return Promise.reject(error);
});
// deng登录过期与token过期



export default instance;
